package paint2.ui.factorias;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import paint2.ui.Elemento;
import paint2.ui.ElementoVisible;
import paint2.ui.ventanas.Ventana;
import paint2.ui.ventanas.VentanaAbrir;
import paint2.ui.ventanas.VentanaBorrar;
import paint2.ui.ventanas.VentanaGuardar;
import paint2.ui.ventanas.VentanaPrincipal;

public class FactoriaDeElementosDeArchivo implements Factoria{

    private VentanaPrincipal ventana;

    public List<ElementoVisible> obtener(Ventana ventana) {
        this.ventana = (VentanaPrincipal) ventana;

        List<ElementoVisible> elementos = new ArrayList();

        Elemento archivo = new Elemento("Abrir", "abrir");
        archivo.agregarActionListener(new AbrirFigura());
        elementos.add(archivo);

        Elemento guardar = new Elemento("Guardar", "guardar");
        guardar.agregarActionListener(new GuardarFigura());
        elementos.add(guardar);

        Elemento borrar = new Elemento("Borrar dibujo", "borrar");
        borrar.agregarActionListener(new BorrarDibujo());
        elementos.add(borrar);

        Elemento salir = new Elemento("Salir", "salir");
        salir.agregarActionListener(new CerrarApp());
        elementos.add(salir);

        return elementos;
    }

    class AbrirFigura implements ActionListener {

        public void actionPerformed(ActionEvent ae) {
            new VentanaAbrir(ventana);
        }
    }

    class GuardarFigura implements ActionListener {

        public void actionPerformed(ActionEvent ae) {
            new VentanaGuardar(ventana);
        }

    }

    class BorrarDibujo implements ActionListener {

        public void actionPerformed(ActionEvent ae) {
            new VentanaBorrar();
        }

    }

    class CerrarApp implements ActionListener {

        public void actionPerformed(ActionEvent ae) {
            System.exit(0);
        }
    }

}
